#ifndef TestNodeTable_h
#define TestNodeTable_h

#include <vector>
#include <cppunit/extensions/HelperMacros.h>
#include "TreeNode.h"
#include "TreeNodeType.h"
#include "NodeTable.h"

class NodeTableTest : public CPPUNIT_NS::TestFixture 
{
	std::vector<TreeNode*> validNodeInput, invalidNodeInput, nonExistNodeInput;
	Type::List::Line validLineInput, invalidLineInput, nonExistLineInput;
	
	NodeTable nodeTb;
	std::string msg;

	CPPUNIT_TEST_SUITE( NodeTableTest );
	CPPUNIT_TEST( testInsert );
	CPPUNIT_TEST( testGet );
	CPPUNIT_TEST (testIsExists );
	CPPUNIT_TEST_SUITE_END();
private:
	void testInsert(Type::List::Line, std::vector<TreeNode*>, bool, std::string);
	void testGetLine(std::vector<TreeNode*>, Type::List::Line, bool, std::string);
	void testGetNode(Type::List::Line, std::vector<TreeNode*>, bool, std::string);
	void testIsExists(Type::List::Line, std::vector<TreeNode*>, bool, std::string);
public:
	void setUp();
	void tearDown();

	void testInsert();
	void testGet();
	void testIsExists();
};
#endif